import static java.lang.System.exit;

public class SharedStack {
    int[]array;//定义一个数组成员
    int top0;//记录0号栈的栈顶
    int top1;//记录1号栈的栈顶
    //构造方法，可以自己设置大小的数组
    public SharedStack(int x) {
        array=new int[x];
        top0=-1;
        top1=x;
    }
    public SharedStack() {
        //由于共享栈不好扩容，所以直接开辟50个大小的数组
        array=new int[50];
        top0=-1;
        top1=4;
    }
    public void push(int x,int stackNumber) {
        //判断栈是否满了
        if(top0+1==top1) {
            exit(0);
        }
        //通过stackNumber来控制调用0号栈或1号栈
        if(stackNumber==0) {
            top0++;
            array[top0]=x;
        } else  {
            top1--;
            array[top1]=x;
        }
    }
    public int pop(int stackNumber) {
        if(stackNumber==0) {
            if(top0==-1) {
                System.out.println("栈空");
            exit(0);
            } else {
                return array[top0--];
            }
        }else if(stackNumber==1){
            if(top1==array.length) {
                exit(0);
                return -1;
            }else {
                return array[top1++];
            }
        }
        System.out.println("stackNumber输入错误");
        //输入的stackNumber错误所以返回-1
        //我们认为-1就是输入错误
        return -1;
    }
}
